spring mvc框架源码分析(一)-封装请求拦截器DispatchServlet

前言:

    之前刚刚学习java web编程之时,感觉Servlet不怎么好用,有时候用起来很麻烦,当时由于自己的经验不足实行起来有点困难,所以就放在了一旁,现在因为自己也做过些些许许项目,有了一点经验,而且正好放假了有一些时间,于是决定实现下自己之前的想法。

什么是拦截器?

    在开始动手之前,要讲一下什么是拦截器?在这个框架中拦截器的作用主要是用来拦截网页的请求的一个Servlet。在最开始的学习的Servlet程序中,每一个路径都需要在web.xml中配置它所对应的Servlet,这样做在Url路径多的时候,会让web.xml变得非常大,并且非常非常多的Servlet,让服务器端显得非常庞大冗余,所以这时候就需要定义一个Servlet,也就是上面所说的拦截器,通过这个Servlet,可以拦截所有的请求,并且把这些请求交给某些具体的方法处理,并且返回。

自定义拦截器:

    首先,我们需要自己创建一个java web应用程序,如下图

,然后可以通过Tomcat跑起来,之后我们需要自己创建一个Servlet来作为我们的拦截器

因为这里我们需要自己封装个servlet来处理请求,所以这个Servlet就不是继承于HttpServlet,而是继承于HttpServlet的父类GenericServlet,并且序列化这个类,这里不清楚Servlet的工作原理的同学可以看下我的这篇博客:http://my.oschina.net/u/2505383/blog/649585,之后我们就需要通过web.xml来进行配置

规定我们部署的目录下所有的请求交给这个Servlet进行处理。

编写拦截器:

   上面操作完了之后,我们就需要对DispatchServlet中的service方法进行重写:

主要是进行ServletRequest -> HttpServletRequet 之后交给另外一个函数进行处理

 public void service(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws ServletException, IOException {
        String url = servletRequest.getRequestURI();
        String method = servletRequest.getMethod();
    /**
     * 之后会做对请求进行分发
     */
}

在这个函数中我们可以通过 servletRequest.getRequestURI()获取请求路径,servletRequest.getMethod()获取请求方式,获取到路劲和方法,我们在这之后会对请求路径进行处理,让这个路径执行它所对应的方法。

总结:

    框架重的拦截器基本原理这里差不多就讲完了,下一节会给大家讲到自定义注解,以及通过反射获取注解对应的方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值